package pacote;

public class Frame {
	private Mac mac_destino;
	private Mac mac_origem;
	private Datagrama datagrama;
	
	public Frame(){}
	
	public Frame(Mac mac_destino, Mac mac_origem, Datagrama datagrama){
		this.mac_destino = mac_destino;
		this.mac_origem = mac_origem;
		this.datagrama = datagrama;
	}
	
	public String getFrameString(){
		return mac_destino.getMacBynaryString() + mac_origem.getMacBynaryString() + datagrama.getDatagramaString();
	}
	
	public void stringToFrame(String frameBinarioString){
		String string_mac_destino = frameBinarioString.substring(0, 48);
		Integer ip_numero_1 = Integer.parseInt(string_mac_destino.substring(0, 8), 2);
		Integer ip_numero_2 = Integer.parseInt(string_mac_destino.substring(8, 16), 2);
		Integer ip_numero_3 = Integer.parseInt(string_mac_destino.substring(16, 24), 2);
		Integer ip_numero_4 = Integer.parseInt(string_mac_destino.substring(24, 32), 2);
		Integer ip_numero_5 = Integer.parseInt(string_mac_destino.substring(32, 40), 2);
		Integer ip_numero_6 = Integer.parseInt(string_mac_destino.substring(40, 48), 2);
		string_mac_destino = Integer.toHexString(ip_numero_1) + "-" + Integer.toHexString(ip_numero_2) + "-" + Integer.toHexString(ip_numero_3) + "-" + Integer.toHexString(ip_numero_4) + "-" + Integer.toHexString(ip_numero_5) + "-" + Integer.toHexString(ip_numero_6);
		mac_destino = new Mac(string_mac_destino);
		
		String string_mac_origem = frameBinarioString.substring(48, 96);
		ip_numero_1 = Integer.parseInt(string_mac_origem.substring(0, 8), 2);
		ip_numero_2 = Integer.parseInt(string_mac_origem.substring(8, 16), 2);
		ip_numero_3 = Integer.parseInt(string_mac_origem.substring(16, 24), 2);
		ip_numero_4 = Integer.parseInt(string_mac_origem.substring(24, 32), 2);
		ip_numero_5 = Integer.parseInt(string_mac_origem.substring(32, 40), 2);
		ip_numero_6 = Integer.parseInt(string_mac_origem.substring(40, 48), 2);
		string_mac_origem = Integer.toHexString(ip_numero_1) + "-" + Integer.toHexString(ip_numero_2) + "-" + Integer.toHexString(ip_numero_3) + "-" + Integer.toHexString(ip_numero_4) + "-" + Integer.toHexString(ip_numero_5) + "-" + Integer.toHexString(ip_numero_6);
		mac_origem = new Mac(string_mac_origem);
		
		String datagrama_string = frameBinarioString.substring(96,frameBinarioString.length());
		datagrama = new Datagrama();
		datagrama.stringToDatagrama(datagrama_string);
	}

	public Mac getMac_destino() {
		return mac_destino;
	}

	public void setMac_destino(Mac mac_destino) {
		this.mac_destino = mac_destino;
	}

	public Mac getMac_origem() {
		return mac_origem;
	}

	public void setMac_origem(Mac mac_origem) {
		this.mac_origem = mac_origem;
	}

	public Datagrama getDatagrama() {
		return datagrama;
	}

	public void setDatagrama(Datagrama datagrama) {
		this.datagrama = datagrama;
	}
	
	
}
